/**
 * JVM
 *      2.JVM类加载
 *      3.JVM垃圾回收机制(GC)
 * JMM
 */
public class Test {
    public static void main(String[] args) {
        /**
         * JMM
         *      3.volatile型变量的特殊规则
         *          1.保证此变量对所有线程的可⻅性
         *          2.使⽤volatile变量的语义是禁⽌指令重排序
         */
    }
    public static void main4(String[] args) {
        /**
         * JMM
         *      2.内存间交互操作
         *          即⼀个变量如何从主内存中拷⻉到⼯作内存、如何从⼯作内存同步回主内存之类的实现细节，Java内存模型中定义了如下8种操作来完成。
         *          JVM实现时必须保证下⾯提及的每⼀种操作的原⼦的、不可再分的。
         */
    }
    public static void main3(String[] args) {
        /**
         * JMM
         *      1.主内存与⼯作内存
         *          Java内存模型规定了所有的变量都存储在主内存中。每条线程还有⾃⼰的⼯作内存，线程的⼯作内存
         *          中保存了被该线程使⽤到的变量的主内存副本拷⻉，线程对变量的所有操作(读取、赋值等)都必须在⼯
         *          作内存进⾏，⽽不能直接读写主内存中的变量。
         */
    }
    public static void main2(String[] args) {
        /**
         * 3.JVM垃圾回收机制(GC)
         *      1.死亡对象的判断算法
         *          1.引用计数算法
         *          2.可达性分析算法
         *      2.垃圾回收算法
         *          1.标记-清除算法
         *          2.复制算法
         *          3.标记-整理算法
         *          4.分代算法
         *      3.垃圾收集器
         */
    }
    public static void main1(String[] args) {
        /**
         * 2.JVM类加载
         *      5.初始化
         *          1.双亲委派模型
         *              1.定义：寻找.class文件
         *              2.优点
         *                  1.避免重复加载类
         *                  2.安全性
         *           2.破坏双亲委派模型(特殊情况):Java 中 SPI机制中的 JDBC 实现
         */
    }
}
